package edu.ptu.shortlink.project.common.convention.result;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;

/**
 * @BelongsProject: shortlink
 * @BelongsPackage: edu.ptu.shortlink.admin.common.convention
 * @Author: HYJ
 * @CreateTime: 2025-04-23  00:01
 * @Description: 返回结果
 * @Version: 1.0
 */
@Data
//实现链式调用，每个方法都返回当前对象this, 可以继续调用其他方法。
// 这样可以实现方法的连续调用，提高代码的可读性和易用性。
@Accessors(chain = true)
public class Result<T> implements Serializable {
    @Serial
    private static final long serialVersionUID = 8337750851134376382L;

    /**
     * 成功响应码
     */
    public static final String SUCCESS_CODE = "0";

    /**
     * 返回码
     */
    private String code;

    /**
     * 返回信息
     */
    private String massage;

    /**
     * 返回数据
     */
    private T data;

    /**
     * 请求Id
     */
    private String requestId;


    /**
     * 成功
     *
     * @return 是否成功
     */
    public boolean isSuccess() {
        return SUCCESS_CODE.equals(code);
    }
}
